const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const session = require('express-session');
const multer = require('multer');
const path = require('path');
const app = express();
app.use(cookieParser());
app.use(session({
    secret: '12345',
    name: 'name',
    cookie: {
        maxAge: 60000
    },
    resave: false,
    saveUninitialized: true,
}));
/* 
secret：				用来对session数据进行加密的字符串.这个属性值为必须指定的属性。
name：					表示cookie的name，默认cookie的name是：connect.sid。
maxAge：				cookie过期时间，毫秒。
resave：				是指每次请求都重新设置session cookie，假设你的cookie是6000毫秒过期，每次请求都会再设置6000毫秒。
saveUninitialized：		是指无论有没有session cookie，每次请求都设置个session cookie ，默认给个标示为 connect.sid。

*/
app.all("*", function(req, res, next) {
    //设置允许跨域的域名，*代表允许任意域名跨域
    res.header("Access-Control-Allow-Origin", "*");
    //允许的header类型
    res.header("Access-Control-Allow-Headers", "content-type,userToKen");
    //跨域允许的请求方式 
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200); //让options尝试请求快速结束
    else
        next();
})
app.use(bodyParser.urlencoded({
    extended: false
})); //extended为false，使用使用系统模块querystring处理
app.use(bodyParser.json());
const mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://localhost:27017/blog', {
    useUnifiedTopology: true,
    useNewUrlParser: true
});
// 监听连接状态
mongoose.connection.once('open', () => {
    console.log('连接数据库成功~');
    app.listen(8088, () => {
        console.log('http://localhost:8088');
    });
});


const uploader = multer({
    dest: path.join(path.dirname(__dirname), 'public', 'imgs')
})
// 引入
var svg = require('./router/svg')
var api = require('./router/api')
var user = require('./router/admin/user')
var type = require('./router/admin/type')
var article = require('./router/admin/article')
// svg验证码
app.use('/svg', svg)
// 前端接口
app.use('/api', api)
// 后台接口
// 用户接口
app.use('/user', user)
// 分类接口
app.use('/type', type)
// 文章接口 
app.use('/article', article)